1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
|
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
<style type="text/css">
input[type=range] {
/*removes default webkit styles*/
-webkit-appearance: none;
/*fix for FF unable to apply focus style bug */
border: 1px solid white;
/*required for proper track sizing in FF*/
width: 200px;
}
input[type=range]::-webkit-slider-runnable-track {
width: 200px;
height: 5px;
background: #ddd;
border: none;
border-radius: 3px;
}
input[type=range]::-webkit-slider-thumb {
-webkit-appearance: none;
border: solid;
border-width:2px;
height: 14px;
width: 14px;
border-radius: 50%;
background: #FCD600;
margin-top: -4px;
}
input[type=range]:focus {
outline: none;
}
input[type=range]:focus::-webkit-slider-runnable-track {
background: #ccc;
}
input[type=range]::-moz-range-track {
width: 200px;
height: 8px;
background: #777;
border: none;
border-radius: 3px;
}
input[type=range]::-moz-range-thumb {
border: solid;
border-width: 2px;
height: 14px;
width: 14px;
border-radius: 50%;
background: #FCD600;
}
/*hide the outline behind the border*/
input[type=range]:-moz-focusring{
outline: 1px solid white;
outline-offset: -1px;
}
input[type=range]::-ms-track {
width: 200px;
height: 8px;
/*remove bg colour from the track, we'll use ms-fill-lower and ms-fill-upper instead */
background: transparent;
/*leave room for the larger thumb to overflow with a transparent border */
border-color: transparent;
border-width: 6px 0;
/*remove default tick marks*/
color: transparent;
}
input[type=range]::-ms-fill-lower {
background: #777;
border-radius: 10px;
}
input[type=range]::-ms-fill-upper {
background: #ddd;
border-radius: 10px;
}
input[type=range]::-ms-thumb {
border: solid;
border-width:2px;
height: 14px;
width: 14px;
border-radius: 50%;
background: #FCD600;
}
input[type=range]:focus::-ms-fill-lower {
background: #888;
}
input[type=range]:focus::-ms-fill-upper {
background: #ccc;
}
input[type=range]::-ms-tooltip {
display:none;
}
</style>
<script type="text/javascript">
// Globale Variablen
// Sparbeiträge gemäss §13 Pensionskassendekret, gültig jeweils für
// das Jahr, in welchem man das jeweilige Alter erreicht.
var sparbeitrag = new Array();
for(i = 25; i <= 29; i++)
sparbeitrag[i] = 0.094;
for(i = 30; i <= 34; i++)
sparbeitrag[i] = 0.124;
for(i = 35; i <= 39; i++)
sparbeitrag[i] = 0.154;
for(i = 40; i <= 44; i++)
sparbeitrag[i] = 0.184;
for(i = 45; i <= 49; i++)
sparbeitrag[i] = 0.214;
for(i = 50; i <= 54; i++)
sparbeitrag[i] = 0.244;
for(i = 55; i <= 65; i++)
sparbeitrag[i] = 0.274;
for(i = 66; i <= 70; i++)
sparbeitrag[i] = 0.094;
// Besitzstandsansprüche gemäss §21 Pensionskassendekret
var besitzstandsanteil = new Array();
besitzstandsanteil[51] = 0.09;
besitzstandsanteil[52] = 0.16;
besitzstandsanteil[53] = 0.23;
besitzstandsanteil[54] = 0.30;
besitzstandsanteil[55] = 0.37;
besitzstandsanteil[56] = 0.44;
besitzstandsanteil[57] = 0.51;
besitzstandsanteil[58] = 0.58;
besitzstandsanteil[59] = 0.65;
besitzstandsanteil[60] = 0.72;
besitzstandsanteil[61] = 0.79;
besitzstandsanteil[62] = 0.86;
besitzstandsanteil[63] = 0.93;
besitzstandsanteil[64] = 1.00;
var maxEinkauf = 0;
var kapital = 0;
var geburtsdatum = [0,0,0];
var lohn2015 = 0;
// Diese Funktion wird aufgerufen, wenn man auf den Button "rechnen" klickt
function rechne() {
// allfällige Ausgaben einer früheren Berechnung löschen
var table = document.getElementById("Ausgabe");
for(i = table.rows.length - 1; i >= 0; i--) {
table.deleteRow(i);
}
var div = document.getElementById("Div");
for(i = div.childNodes.length - 1; i >= 0; i--) {
div.removeChild(div.lastChild);
}
// Eingaben einlesen:
// Saldo Sparkonto per 1.1.2015
kapital = Number(document.getElementById("besitz2015").value);
// Beitragsverdienst per 1.1.2013
var rbV2013 = Number(document.getElementById("rbV2013").value);
// Beittragsverdienst am 31.12.2014
var BV2015 = Number(document.getElementById("BV2015").value);
// Versicherter Jahreslohn am 1.1.2015
maxEinkauf = Number(document.getElementById("maxEinkauf").value);
// maximal möglicher Einkauf in ordentliche Leistungen am 01.01.2015
lohn2015 = Number(document.getElementById("lohn2015").value);
// Beim Einlesen des Geburts- und des Eintrittsdatum werden
// diese gerade in Tag, Monat und Jahr zerlegt
// Geburtsdatum (TT.MM.JJJJ)
geburtsdatum =
document.getElementById("geburtsdatum").value.split(".");
// Anrechenbarer Arbeitsbeginn beim Kanton (TT.MM.JJJJ)
var eintrittsdatum =
document.getElementById("eintrittsdatum").value.split(".");
// Strings in Zahlen verwandeln
for(i = 0; i < 3; i++) {
geburtsdatum[i] = parseInt(geburtsdatum[i]);
eintrittsdatum[i] = parseInt(eintrittsdatum[i]);
}
// Alter im Jahr 2015 ausrechnen
var alter = 2015 - geburtsdatum[2];
// Hier wird das Sparkapital unter zwei Voraussetzungen berechnet:
// Verzinsung 1.5% bis Alter 65, im ersten Jahr Verzinsung mit 1.75%
var kapital1_5 = kapitalberechnung(geburtsdatum[2], // Jahr
geburtsdatum[1], // Monat
kapital,
lohn2015, 65, 1.5, 1.75);
// Verzinsung 3.25% bis Alter 64
// (zur Überprüfung eines Anspruchs auf eine Besitzstandseinlage)
var kapital3_25 = kapitalberechnung(geburtsdatum[2], // Jahr
geburtsdatum[1], // Monat
kapital,
lohn2015, 64, 3.25, 3.25);
// Der folgende Text wird ausgegeben.
writeIntoTable3("Basierend auf der Annahme einer Verzinsung von 1.5% "
+ "(im Jahr 2015 einmalig 1.75%) wird nun berechnet, wie hoch "
+ "Ihr angespartes Kapital zum Zeitpunkt Ihrer Pensionierung "
+ "im Alter 65 sein würde. Dies ist die Zahl, die auf Ihrem "
+ "Versicherungsausweis vom 01.01.2015 als Ihr voraussichtliches "
+ "Sparkapital genannt ist. Dabei bleiben allfällige Veränderungen "
+ "Ihres Lohns bis zu Ihrer Pensionierung unberücksichtigt. "
+ "Die Sparbeiträge werden gemäss §13 des "
+ "<a href='http://www.baselland.ch/fileadmin/baselland/"
+ "files/docs/recht/sgs_demn/38/38.0281.pdf' target='_blank'>"
+ "Pensionskassendekrets</a> (AG- und AN-Beiträge addiert) berechnet "
+ "und gemäss <a href='https://www.admin.ch/"
+ "opc/de/classified-compilation/19840067/index.html#a11' target='_blank'>"
+ "Artikel 11 der Verordnung über die berufliche Alters-, Hinterlassenen- "
+ "und Invalidenvorsorge BVV2</a> zum bereits angesparten Kapital addiert.");
// Anzeige des zuvor berechneten Altersguthabens bei 1.5% Verzinsung und
// ordentlicher Pensionierum im Alter 65
writeIntoTable("Guthaben bei 1.5% Verzinsung "
+ "im Alter 65: ",
"CHF ", numberWithCommas(kapital1_5.toFixed(0)));
// Erläuterung der Berechnung ausgeben
writeIntoTable3("Von diesem Guthaben würden gemäss dem aktuell gültigen "
+ "Umwandlungssatz jährlich 5.8% als Rente ausbezahlt. Dieser Umwandlungssatz "
+ "bestimmt sich aus der Lebenserwartung und der durch den technischen "
+ "Zinssatz von aktuell 3% vorgeschriebenen Verzinsung der Altersguthaben "
+ "der Pensionierten. Aktuell gilt die Formel Umwandlungssatz in % = 0.12 * "
+ "Altersjahre - 2 (vgl. auch <a href='http://www.baselland.ch/fileadmin/"
+ "baselland/files/docs/fkd/pa/vorsorgereglement.pdf' target='_blank'>"
+ "BLPK-Vorsorgereglement</a>).");
// Zugehörige Rente ausrechnen (Umwandlungssatz 5.8%
var rente1_5 = 0.058 * kapital1_5;
// Zugehörige Rente ausgeben
writeIntoTable("Rente bei 1.5% Verzinsung "
+ "im Alter 65 (Umwandlungssatz 5.8%): ",
"CHF ", numberWithCommas(rente1_5.toFixed(0)));
// Berechnung des für die Besitzstandszulage massgeblichen Alters
// = Alter + 0.4*Dienstjahre
var besitzstandsAlter
= alter - 1 + 0.4 * (2015 - eintrittsdatum[2] - 1);
// Erläuterung, wann es eine Besitzstandseinlage gibt
writeIntoTable3("Für die Frage, ob Ihnen eine Besitzstandsgutschrift gesprochen "
+ "wird, sind drei Fragen entscheidend:<br>"
+ "<ol><li>Ist die Zahl Ihrer Dienstjahre mindestens 3? Sie haben "
+ (2015 - eintrittsdatum[2]).toFixed(0) + " Dienstjahre."
+ "<li>Ist die Summe aus Altersjahren und 0.4 * Dienstjahren "
+ " mindestens 50? Bei Ihnen ergibt der Wert dieser Summe "
+ besitzstandsAlter.toFixed(1) + ".</li> "
+ "<li>Ist die Rente, die sich ergäbe, wenn Ihr Guthaben vom 1.1.2015 bis "
+ "zu Ihrer Pensionierung mit 3.25 % verzinst würde, geringer, als diejenige, "
+ "die Ihnen im Ausweis vom 01.01.2013 in Aussicht gestellt wurde? Letztere "
+ "beläuft sich auf 60% des rentenberechtigten Verdiensts am 01.01.2013.</li> "
+ "</ol>");
// Im Leistungsprimat lag die Rente
// bei 60% des rentenberechtigten Verdiensts.
// Der Besitzstand wird auf Basis dieser Rente, wie wie am 1.1.2013
// ausgewiesen wurde, berechnet.
var rente2013 = 0.6 * rbV2013;
writeIntoTable("Am 1.1.2013 in Aussicht gestellte Rente: ",
"CHF ", numberWithCommas(rente2013.toFixed(0)));
writeIntoTable("Guthaben bei 3.25% Verzinsung "
+ "im Alter 64: ",
"CHF ", numberWithCommas(kapital3_25.toFixed(0)));
writeIntoTable3("In dieser Modellrechnung würden Sie nur 5.68% Ihres "
+ "Guthabens als jährliche Rente ausbezahlt bekommen, da die "
+ "Rentenauszahlung schon ein Jahr früher beginnen würde.");
// Da die mit 3.25% berechnete Rente mit 64 Jahren beginnt,
// ist der Umwandlungssatz 5.68%
var rente3_25 = 0.0568 * kapital3_25;
writeIntoTable("Ihre Rente bei 3.25% Verzinsung im Alter 64 wäre: ",
"CHF ", numberWithCommas(rente3_25.toFixed(0)));
var rente2015 = 0.6 * BV2015;
// Berechnung des für den Besitzstand massgeblichen Alters
// gemäss §21 des Pensionskassendekrets
var besitzstandsAlter
= alter - 1 + 0.4 * (2015 - eintrittsdatum[2] - 1);
// Ab Besitzstandsalter 64 liegt der Anspruch bei 100%
if(besitzstandsAlter > 64)
besitzstandsAlter = 64;
// Klärung des Besitzstandsanspruchs
if(eintrittsdatum[2] >= 2012) {
writeIntoTable3("Da Sie weniger als drei Dienstjahre aufweisen, "
+ "haben Sie keinen Anspruch auf eine "
+ "Besitzstandseinlage.");
} else if(rente2013.toFixed(0) <= rente3_25.toFixed(0)) {
writeIntoTable3("Da sich bei einer Verzinsung mit 3.25% "
+ "eine mindestens gleich grosse Rente ergäbe"
+ " wie diejenige, die Ihnen am 01.01.2013 in Aussicht gestellt"
+ " wurde, wird keine Besitzstandseinlage bezahlt.");
} else {
if(besitzstandsAlter < 50) {
writeIntoTable3("Da die Summe aus den vollendeten Altersjahren "
+ "und 0.4-mal den vollendeten Dienstjahren bis "
+ "zum 31.12.2014 weniger als 50 ergibt, wird "
+ "keine Besitzstandseinlage bezahlt.")
} else {
besitzstandsAlter = Math.ceil(besitzstandsAlter);
var benoetigtesAltersguthabenFuerBesitzstand = rente2013 / 0.058;
writeIntoTable("Notwendiges Altersguthaben bei einer Pensionierung "
+ "im Alter 65 für eine Rente von CHF "
+ numberWithCommas(rente2013.toFixed(0)) + ":",
"CHF ",
numberWithCommas((rente2013 / 0.058).toFixed(0)));
// Dieser Betrag müsste freilich nicht vollständig eingeschossen
// werden, sondern würde bis zur Pensionierung noch verzinst.
// Dies wird bei der Berechnung der notwendigen Einlage
// berücksichtigt.
var notwendigeEinlage3_25 =
kapital3_25 * (rente2013 / rente3_25 - 1.0)
/ (Math.pow(1.0325, 64 - alter) *(1 + 0.0325 * geburtsdatum[1] / 12.0));
writeIntoTable("Notwendige Einlage für CHF "
+ numberWithCommas(rente2013.toFixed(0))
+ " Rente im Alter 64 bei 3.25% Verzinsung: ",
"CHF ",
numberWithCommas(notwendigeEinlage3_25.toFixed(0)));
// Der prozentuale Besitzstandsanspruch wird gemäss Tabelle berechnet
besitzstandsEinlage
= notwendigeEinlage3_25
* besitzstandsanteil[besitzstandsAlter];
writeIntoTable3("Von der bei 3.25% Verzinsung für eine ab "
+ "Alter 64 laufende Rente von CHF "
+ numberWithCommas(rente2013.toFixed(0))
+ " benötigten Einlage von CHF "
+ numberWithCommas(notwendigeEinlage3_25.toFixed(0))
+ " werden aufgrund Ihres für den Besitzstand "
+ "massgebenden Alters von " + besitzstandsAlter
+ " Jahren (Alter + 0.4 * Dienstjahre, gerundet auf "
+ " die nächste nicht kleinere ganze Zahl) gemäss §21 Abs. 2 "
+ " des <a href='http://www.baselland.ch/fileadmin/baselland/"
+ "files/docs/recht/sgs_demn/38/38.0281.pdf' target='_blank'>"
+ "Pensionskassendekrets</a>) "
+ 100*besitzstandsanteil[besitzstandsAlter]
+ "% oder CHF "
+ numberWithCommas(besitzstandsEinlage.toFixed(0))
+ " überwiesen.");
}
}
writeIntoTable3("Im Folgenden können Sie nun mit den drei Schiebereglern die "
+ "Parameter verändern, welche Ihre Rente beeinflussen und dabei "
+ "jeweils verfolgen, welchen Einfluss welche Änderung auf Ihre "
+ "Rente hat. Welcher Wert für den Zinssatz der richtige ist, kann "
+ "natürlich niemand vorhersagen. Dieser hängt von der zukünftigen "
+ "Performance der BLPK ab und wird von Jahr zu Jahr schwanken. "
+ "Entsprechend ist der Vorhersagewert dieser Berechnungen sehr "
+ "gering, zumal auch zukünftige Veränderungen des Umwandlungssatzes "
+ "nicht ausgeschlossen sind.");
// Aufbau der Tabelle mit den Schiebereglern. Die auswählbare Einkaufssumme soll
// entweder die maximale Summe sein, oder sonst eine einigermassen runde Zahl zwischen
// 0 und der maximalen Summe, wobei 100 gleichmässig verteilte Werte eingestellt werden
// können. Bei jeder Veränderung eines Schiebereglers wird die Funktion adjustAll()
// aufgerufen, welche sämtliche Werte neu berechnet.
var step = Math.round(0.01 * Math.pow(10,Math.round(Math.log(maxEinkauf) / Math.log(10))));
var max = Math.round(maxEinkauf / step) + 1;
var maxKapital1_5_65 = kapitalberechnung(geburtsdatum[2], // Jahr
geburtsdatum[1], // Monat
kapital + 0.0 + maxEinkauf,
lohn2015, 65, 1.5, 1.75);
writeIntoTable3("<table><tr><td>Pensionierungsalter: </td><td><input type='range' "
+ "class='slider' min='58' max='70' step='1' onchange='adjustAll("+max+","+step+")' "
+ "oninput='adjustAll("+max+","+step+")' id='alter' value='65' ></td>"
+ "<td id='tdAlter'>65</td></tr><tr><td>Zinssatz:</td><td>"
+ "<input type='range' class='slider' min='0' "
+ "max='40' value='6' step='1' id='zinssatz' onchange='adjustAll("+max+","
+ step+")' oninput='adjustAll("+max+","+step+")'></td>"
+ "<td id='tdZinssatz'>1.5%</td></tr>"
+ "<tr><td>freiw. Einkauf:</td><td><input type='range' min='0' max='"+max
+ "' class='slider' value='"+max+"' step='1' id='einkauf' "
+ "onchange='adjustAll("+max+","+step+")' oninput='adjustAll("+max+","+step+")'>"
+ "</td><td id='tdEinkauf' style='width:15em'>CHF "
+ numberWithCommas(maxEinkauf.toFixed(2)) + "</td></tr></table>");
writeIntoTable3("<table><tr><td>Umwandlungssatz:</td>"
+ "<td id='umwandlungssatz'>5.80%</td></tr>"
+ "<tr><td>Sparkapital bei "
+ "der Pensionierung:</td><td id='sparkapitalPensionierung'>CHF "
+ numberWithCommas(maxKapital1_5_65.toFixed(0))+"</td></tr>"
+ "<tr><td>jährliche Rente:</td>"
+ "<td id='meineRente'>CHF "
+ numberWithCommas((maxKapital1_5_65 * 0.058).toFixed(0))
+ "</td></tr></table>");
document.getElementById("alter").type = "range";
}
/* Eine Zeile an das Ende der Ausgabetabelle schreiben */
function writeIntoTable(a, b, c) {
var table = document.getElementById("Ausgabe");
var row = table.insertRow(-1); // an den Schluss anfügen
var cell1 = row.insertCell(0);
var cell2 = row.insertCell(1);
var cell3 = row.insertCell(2);
cell3.style.textAlign = "right";
cell1.innerHTML = a;
cell2.innerHTML = b;
cell3.innerHTML = c;
}
/* Eine Zeile mit colspan="3" an das Ende der Ausgabetabelle
schreiben */
function writeIntoTable3(a) {
var table = document.getElementById("Ausgabe");
var row = table.insertRow(-1); // an den Schluss anfügen
var cell = row.insertCell(0);
cell.colSpan = 3;
cell.style.paddingTop = '2ex';
cell.style.background = 'white';
cell.innerHTML = a;
}
/* Eine Zeile an das Ende des Ausgabetexts schreiben */
function writeIntoDiv(a) {
var div = document.getElementById("Div");
var p = document.createElement("p");
div.appendChild(p);
p.appendChild(document.createTextNode(a));
}
/* Berechnung des Kapitals zum Zeitpunkt der Pensionierung.
Parameter:
Geburtsjahr,
Geburtsmonat,
Kapital (gemeint ist der Saldo des Sparkontos per 1.1.2015),
Versicherter Jahreslohn,
angenommener Jahreszins
Die Funktion berechnet den Zuwachs des Kapitals gemäss Art. 11
der Verordnung über die berufliche Alters-, Hinterlassenen- und
Invalidenvorsorge BVV2:
2 Am Ende des Kalenderjahres muss sie [die PK] dem individuellen
Alterskonto gutschreiben:
a. den jährlichen Zins auf dem Altersguthaben nach dem Kontostand
am Ende des Vorjahres;
b. die unverzinsten Altersgutschriften für das abgelaufene
Kalenderjahr.
3 Tritt ein Versicherungsfall ein oder verlässt der Versicherte die
Vorsorgeeinrichtung während des laufenden Jahres, so muss sie dem
Alterskonto gutschreiben:
a. den Zins nach Absatz 2 Buchstabe a anteilsmässig berechnet bis
zum Eintritt des Versicherungsfalles oder des Freizügigkeitsfalles
nach Artikel 2 des FZG 29;
b. die unverzinsten Altersgutschriften bis zum Eintritt des
Versicherungsfalles oder bis zum Austritt des Versicherten.
*/
function kapitalberechnung(geburtsjahr,
geburtsmonat,
kapital,
lohn2015,
pensionierungsalter,
jahreszins,
jahreszins1) {
// Berechnung des Aufzinsfaktors
var q = 1.0 + 0.01 * jahreszins;
var q1 = 1.0 + 0.01 * jahreszins1;
// Als Alter gilt jeweils das Alter, welches im jeweilgen Jahr
// am Geburtstag erreicht wird, ohne Bruchteile.
var alter = 2015 - geburtsjahr;
var startalter = alter;
while(alter < pensionierungsalter) {
if(startalter == alter) {
kapital *= q1;
} else {
kapital *= q;
}
kapital += lohn2015 * sparbeitrag[alter];
alter++;
}
// Das Jahr, in dem die Person das Pensionierungsalter erreicht,
// wird anteilmässig berücksichtigt (bis und mit zum Monat des
// Geburtstags)
if(alter == startalter) {
jahreszins = jahreszins1;
}
kapital *= 1 + jahreszins*0.01/12*geburtsmonat;
kapital += lohn2015 * sparbeitrag[alter] / 12.0 * geburtsmonat;
return kapital;
}
// Sorgt für die Hochkommas nach jeweils 3 Ziffern
// grosser Zahlen (verwandelt also z.B. 1234567 in 1'234'567)
function numberWithCommas(x) {
var parts = x.toString().split(".");
parts[0] = parts[0].replace(/\B(?=(\d{3})+(?!\d))/g, "'");
return parts.join(".");
}
/* Diese Funktion übernimmt die jeweilige Neuberechnung von Umwandlungssatz,
Alterskapital und Rente nach jeder Veränderung eines Schiebereglerwertes.
*/
function adjustAll(max,step) {
// Einlesen der Schiebereglerwerte
var meinPensionierungsalter
= document.getElementById('alter').valueAsNumber;
var meinZinssatz = 0.25 * document.getElementById('zinssatz').valueAsNumber;
var einkauf = document.getElementById('einkauf').valueAsNumber;
var meinEinkauf = maxEinkauf;
if(einkauf != max)
meinEinkauf = einkauf * step;
// Anzeigen der neuen Schiebereglerwerte
document.getElementById('tdZinssatz').innerHTML = meinZinssatz + "%";
document.getElementById('tdAlter').innerHTML
= meinPensionierungsalter;
document.getElementById('tdEinkauf').innerHTML
= "CHF " + numberWithCommas(meinEinkauf.toFixed(2));
// Berechnung der neuen Werte für Umwandlungssatz, Altersguthaben und Rente
var meinUmwandlungssatz = 0.12 * meinPensionierungsalter - 2;
var meinAlterskapital = kapitalberechnung(geburtsdatum[2], // Jahr
geburtsdatum[1], // Monat
kapital + 0.0 + meinEinkauf,
lohn2015,
meinPensionierungsalter,
meinZinssatz,
meinZinssatz);
var meineRente = meinAlterskapital * 0.01 * meinUmwandlungssatz;
// Anzeigen der neuen Werte für Umwandlungssatz, Altersguthaben und Rente
document.getElementById('umwandlungssatz').innerHTML =
meinUmwandlungssatz.toFixed(2) + "%";
document.getElementById('sparkapitalPensionierung').innerHTML
= "CHF " + numberWithCommas(meinAlterskapital.toFixed(0));
document.getElementById('meineRente').innerHTML
= "CHF " + numberWithCommas((meineRente).toFixed(0));
}
</script>
</head>
<body>
<h1>Rentenrechner</h1>
<div style="border:solid; padding:1em">
<h2>Bitte beachten</h2>
<p style="text-weight:bold">Alleiniger Zweck dieses Rentenrechners ist
es, dass Sie die Angaben auf Ihrem Versicherungsausweis gültig ab
1.1.2015 (erstellt Ende März 2015) auf Plausibilität überprüfen können.
Sie dürfen nicht davon ausgehen, dass die dort angegebenen Zahlen
exakt mit den hier berechneten übereinstimmen. Bei vorzeitigem
Kapitalbezug, nicht vollständigem Einkauf oder falls sich Ihr Lohn
innerhalb der letzten 2 Jahre verringert hat, liefert dieser
Rentenrechner möglicherweise falsche Zahlen. Der Autor
übernimmt keinerlei Verantwortung für die Richtigkeit der hier
gemachten Berechnungen, und in keinem Fall lassen sich aus den
hier gemachten Berechnungen irgendwelche Rechtsansprüche
ableiten.</p>
<p>Für Fragen, die sich aus den mit diesem Rentenrechner gemachten
Berechnungen ergeben, wenden Sie sich bitte an die LVB-Geschäftsstelle,
nicht an die BLPK!</p>
</div>
<p>Um den Rentenrechner zu verwenden, halten Sie bitte folgende
Dokumente bereit:</p>
<ol type="a">
<li>Versicherungsausweis gültig ab 01.01.2013</li>
<li>Vergleichsausweis für den Wechsel der Vorsorglösung per
1. Januar 2015</li>
<li>Versicherungsausweis gültig ab 01.01.2015</li>
</ol>
<p>Füllen Sie dann die Tabelle aus und klicken Sie auf "rechnen"!</p>
<table>
<tr><td>Saldo Sparkonto per 1.1.2015 (gemäss Dokument c):</td>
<td><input type="decimal" id="besitz2015" size="10" /></td></tr>
<tr><td>Rentenberechtigter Verdienst am 1.1.2013
(gemäss Dokument a):</td>
<td><input type="decimal" id="rbV2013" size="10" /></td></tr>
<tr><td>Beitragsverdienst Leistungsprimat am 31.12.2014
(gemäss Dokument b):</td>
<td><input type="decimal" id="BV2015" size="10" /></td></tr>
<tr><td>Versicherter Jahreslohn Besitzstand am 01.01.2015
(gemäss Dokument c. Falls nicht vorhanden: Versicherter
Jahreslohn am 01.01.2015 gemäss Dokument c):</td>
<td><input type="decimal" id="lohn2015" size="10" /></td></tr>
<tr><td>Maximal möglicher Einkauf in ordentliche Leistungen am 01.01.2015
(gemäss Dokument c):</td>
<td><input type="decimal" id="maxEinkauf" size="10" /></td></tr>
<tr><td>Geburtsdatum (TT.MM.JJJJ):</td>
<td><input type="text" id="geburtsdatum" size="10" /></td></tr>
<tr><td>Anrechenbarer Arbeitsbeginn beim Kanton (TT.MM.JJJJ):</td>
<td><input type="text" id="eintrittsdatum" size="10" /></td></tr>
</table>
<p><input type="button" value="rechnen" onclick="rechne()" /></p>
<table id="Ausgabe">
</table>
<div id="Div">
</div>
<p>© Michael Weiss, 30.05.2015</p>
</body>
</html>
|